Portfolios
One of the primary things that employers are trying to suss out, during the hiring funnel, is whether or not you have the technical skills needed to do the job.
You'll have the opportunity to demonstrate these skills in the technical interview, but as we've already talked about, interviews are expensive. Employers often want to get a sense of your technical skills before scheduling anything.
You can send a strong signal to employers that you have these technical skills with your portfolio. A portfolio is a curated collection of projects that you've built, a showcase of your best work.
Until you have a bunch of relevant work experience on your résumé, your portfolio is your greatest asset.
How many portfolio projects do I need?
A portfolio is meant to be a showcase of our very best work. It shouldn't be an exhaustive catalog of everything we've ever built.
For most people, I think you want to select between 2 and 5.
This might not seem like enough to you. Only 2 projects? Really??
Remember, the person reviewing your portfolio likely has a stack of hundreds of other applicants. They'll probably only look at 1 or 2 projects, no matter how many you actually have in your portfolio.
If you give them a list of everything you've ever built, they'll pick one or two at random. They might only see your least impressive work!
Quality matters more than quantity. It's better to have 2 stellar projects than 10 mediocre ones.
Choosing what to include in our portfolio
One of the most common questions I got asked as a career coach was this: “What sorts of projects should I include in my portfolio?”
Maybe you have a dozen projects, and you're not sure which ones to select for your portfolio. Or, maybe you're just starting out, and you're not sure what kind of projects to build.
This is a highly personal question, and the answer will look a bit different for everyone. That said, I can share the things I consider when trying to evaluate different project ideas.
Scratching your own itch
One of the very first things I built, when I was developing my portfolio in 2014, was a tool that allowed me to compare the width, diameter, and weight of different high-end yoyos from Canadian yoyo company Caribou Lodge:
(If this looks familiar, it's because I mentioned it when I was encouraging you to do some unguided practice!)
This might seem like a very weird thing to include in a portfolio. I'm probably not going to get a job as a developer at a yoyo company! Shouldn't I build something that is more relevant?
Here's the thing: I was really into this project. I'd wake up excited to work on it. That enthusiasm gave me so much motivation. Motivation is incredibly important. It allows you to actually finish a project, rather than abandoning it when you hit some weird bug or seemingly-insurmountable obstacle.
That enthusiasm also shines through in interviews. When an interviewer asks you about the projects in your portfolio, you want to be able to genuinely show your excitement for programming. That's much easier if you're enthusiastic about the project itself.
Tailored for dream companies
Earlier, I shared that I built a toy app using Spotify’s API, because I wanted to work at Spotify.
This can be incredibly effective, since it shows the company how enthusiastic you are about their mission/product. And even if you don't wind up getting an offer from that company, it can still serve as a useful portfolio project for other companies!
Real-world projects
Most portfolio projects are clearly contrived, built specifically to be included in the portfolio. They were never intended to be “real” projects.
This isn't the worst thing, but it's not ideal. Employers will be more impressed by live projects, projects that have real users, solving real problems.
I briefly mentioned Tello, an application I built which helped me track which episodes I've seen of TV shows. I created this app mostly for myself, but I published it and shared it. At its peak in ~2018, I think had about 30 monthly active users.
This was hardly a commercial success, but it meant that this project worked really well as a portfolio project, because it didn't feel like a portfolio project, it felt like a real project.
Another quick example: when I built that yoyo comparison tool, I sent it to Caribou Lodge, the company that makes the yoyos in the tool. They loved it, and we worked together to integrate it into their website! And so, this thing I built just for fun wound up becoming a living, breathing product, something I could link to, which was actually being used by a real business!
Open-source contributions
If you've made significant contributions to an open-source project, you should almost certainly include it in your portfolio.
Employers generally take it as a strong signal if you've worked on open-source projects. In addition to technical skills, it also shows that you're good at working with other people. Open source is a team sport, just like working in a team at a company.
It can be daunting, figuring out how to contribute to open-source libraries. Fellow educator Kent C. Dodds has some resources which can help:
Tutorial / course projects
A few students have asked if they can use the projects we build in this course (eg. Wordle) in their portfolio.
My answer is always the same: you can, but you shouldn't.
There's no legal issue in terms of copyright or anything like that. I won't sue you if you include Wordle in your portfolio. But it's probably not a good idea.
Employers want to see what you can do on your own. When it comes to projects from tutorials and courses, the employer has no idea if you solved it 100% independently, or if you followed along to the solution video. There isn't really any signal there.
Now, you could omit the fact that it's from a course, and pretend that you built it yourself, but this can backfire. Remember, the folks who review your portfolio have probably reviewed hundreds of others! They might recognize it as something from a course.
That said, you might want to include it if you've done a significant amount of additional work, well beyond what we cover in the course. For example, if you add online multiplayer to Wordle, well, that's a different story.